This specification relates to fault tolerance and load balancing.
Fault tolerance is the quality that allows a system to continue operating in the event of a failure of one or more system components. Fault tolerance is important in high-availability or life-critical systems. Fault tolerant systems can be used for both planned and unplanned service outages. Some fault tolerant systems require no single point of failure and have the ability to identify the failing component.
Load balancing is the quality of distributing load evenly across multiple computers, disk drives, or other system components to achieve the efficient processing potential and avoid overload. Some load balancers are software programs that process incoming requests and determine which server will most optimally process the request. The load balancer then routes the request to the optimal server. For example, load balancers may be used for front end web services or back end database services.